#pragma once
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <assert.h>
#define SIZE 1024
// 1, 2, 4二进制1的位置不一样
#define SYNC_NOW 1  // 立即刷新
#define SYNC_LINE 2 // 行刷新
#define SYNC_FULL 4 // 全刷新
typedef struct _FILE
{
    int flags;     // 刷新方式
    int fileno;    // 文件描述符
    int cap;       // buffer总容量
    int size;      // buffer当前使用量
    char buffer[SIZE]; // 缓冲区
} FILE_;
FILE_ *fopen_(const char *path_name, const char *mode);
void fwrite_(const void *ptr, int num, FILE_ *fp);
void fclose_(FILE_ *fp);
void fflush_(FILE_ *fp);